iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
AI/ ML & Data

我的深度學習-從0開始實作物件偵測系列 第 19

【Day 19】實戰演練 - 測試模型!

  • 分享至 

  • xImage
  •  

一、前言

繼上一篇完成模型的訓練後,接著我們就可以對模型進行測試,確認是否能準確地抓到車牌框吧!

二、準確率測試

  1. 首先先定義一個名為 predict_and_plot的副程式,可以對輸入進的圖片進行處理。
import cv2
import matplotlib.pyplot as plt
from ultralytics import YOLO


def predict_and_plot(path_test_car):

    # 使用模型對測試的圖片做預測
    results = model.predict(path_test_car, device='cpu')
    
    # 使用cv2讀取圖片
    image = cv2.imread(path_test_car)
    
    # 將影像從BGR轉為RGB
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    # 從結果提取出邊界框和標籤
    for result in results:
        for box in result.boxes:
            # 獲取邊界框的座標
            x1, y1, x2, y2 = map(int, box.xyxy[0])
            # 獲取邊界框的信心分數
            confidence = box.conf[0]
            # 在圖片上繪製邊界框
            cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)
            #在圖片周圍繪製信心分數
            cv2.putText(image, f'{confidence*100:.2f}%', (x1, y1 - 10), 
                        cv2.FONT_HERSHEY_SIMPLEX, 0.9, (255, 0, 0), 2)
# 使用matploblib繪製出影像
    plt.imshow(image)
    plt.axis('off') 
    plt.show() 
  1. 接著輸入進要測試的圖片。(此處筆者使用的是之前分類出來的10%測試集)
predict_and_plot(r'c:/Users/使用者/Documents/projects/Car_License/Modle/test/images/Cars323.png')

可以得出下圖的結果,可以看到車牌的邊界框順利的辨識出來了。以下會多放幾張不同角度及距離的測試圖片。
image
image
image
可以看到,距離越遠,角度越刁鑽,準確率就會大幅的下降,可見選擇好的訓練素材的重要性。接著會試著將模型進行微調,測試能否再提高準確率,那我們下篇見。

image


上一篇
【Day 18】實戰演練 - 模型評估!
下一篇
【Day 20】實戰演練 - 微調模型測試!
系列文
我的深度學習-從0開始實作物件偵測30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言